GtkSearchBar: Use G_PARAM_EXPLICIT_NOTIFY
authorMatthias Clasen <mclasen@redhat.com>
Mon, 9 Jun 2014 13:39:53 +0000 (09:39 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 9 Jun 2014 17:31:09 +0000 (13:31 -0400)
gtk/gtksearchbar.c

index 1181d48ce751c2264293aab996ff98dd45ba5e66..c9daf15142653a565cfe77bb3a906501a381cd28 100644 (file)
@@ -30,6 +30,7 @@
 #include "gtkentry.h"
 #include "gtkentryprivate.h"
 #include "gtkintl.h"
+#include "gtkprivate.h"
 #include "gtkstylecontext.h"
 #include "gtksearchbar.h"
 
@@ -406,7 +407,7 @@ gtk_search_bar_class_init (GtkSearchBarClass *klass)
                                                                  P_("Search Mode Enabled"),
                                                                  P_("Whether the search mode is on and the search bar shown"),
                                                                  FALSE,
-                                                                 G_PARAM_READWRITE);
+                                                                 GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * GtkEntry:show-close-button:
@@ -417,7 +418,7 @@ gtk_search_bar_class_init (GtkSearchBarClass *klass)
                                                                P_("Show Close Button"),
                                                                P_("Whether to show the close button in the toolbar"),
                                                                FALSE,
-                                                               G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+                                                               GTK_PARAM_READWRITE|G_PARAM_CONSTRUCT|G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROPERTY, widget_props);
 
@@ -585,5 +586,11 @@ gtk_search_bar_set_show_close_button (GtkSearchBar *bar,
 
   g_return_if_fail (GTK_IS_SEARCH_BAR (bar));
 
-  gtk_widget_set_visible (priv->close_button, visible);
+  visible = visible != FALSE;
+
+  if (gtk_widget_get_visible (priv->close_button) != visible)
+    {
+      gtk_widget_set_visible (priv->close_button, visible);
+      g_object_notify (G_OBJECT (bar), "show-close-button");
+    }
 }